Skip to content

[pull] main from expo:main - #1166

Merged
pull[bot] merged 8 commits into
code:mainfrom
expo:main
Aug 20, 2026
Merged

[pull] main from expo:main#1166
pull[bot] merged 8 commits into
code:mainfrom
expo:main

Conversation

@pull

@pull pull Bot commented Aug 20, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

s0uthpaw and others added 8 commits August 20, 2026 12:06
# Why

The authentication guide currently describes biometric prompts as a
local gate. That is accurate for a biometric prompt by itself, but an
authentication provider can pair the prompt with a device-bound
credential to authenticate with a server and establish a new session.

Clerk recently added this trusted-device flow for Expo, iOS, and
Android. Documenting the distinction helps readers understand the
difference between local biometric checks, server-verified
trusted-device sign-in, and passkeys.

Related documentation:

- https://clerk.com/changelog/2026-08-17-biometric-sign-in-mobile-sdks
-
https://clerk.com/docs/expo/guides/development/custom-flows/authentication/biometric-sign-in

# How

- Clarify that a biometric prompt alone does not authenticate with a
server.
- Explain how an authentication provider can combine the prompt with a
device-bound credential to create a session.
- Use Clerk biometric sign-in as a concrete example.
- Distinguish app-installation-scoped trusted-device credentials from
WebAuthn passkeys.

# Test Plan

- Ran `npx -y oxfmt@0.47.0 --check
docs/pages/develop/authentication.mdx`.
- Ran `git diff --check`.
- Confirmed the Clerk biometric sign-in and W3C WebAuthn links return
HTTP 200.

# Checklist

- [ ] I added a `changelog.md` entry and rebuilt the package sources
according to [this short
guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting)
- [ ] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
- [x] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
# Why

File.size is typed as number, but native Android and iOS bridges
returned null when the file was missing or unreadable. For instance here
on android
(https://github.com/expo/expo/blob/main/packages/expo-file-system/android/src/main/java/expo/modules/filesystem/FileSystemFile.kt#L205-L211).

But TS type it as `number`


https://github.com/ACHP/expo/blob/5ff5560a425024bfc2f7bba3c67e83498cca1eaf/packages/expo-file-system/src/internal/NativeFileSystem.types.ts#L323

<img width="764" height="139" alt="image"
src="https://github.com/user-attachments/assets/351828ea-6115-4c1c-ad4b-1aff388f1e18"
/>


# How

Return 0 from both native bridges for those cases. File implements Blob,
whose size must be a number, so number | null is not possible.

# Test Plan

Ran pnpm exec et check-packages expo-file-system.

# Checklist

- [x] I added a changelog.md entry and rebuilt the package sources
according to this
short guide
(https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting)

- [x] This diff will work correctly for npx expo prebuild & EAS Build
(eg: updated a
    module plugin).

- [x] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)

---------

Co-authored-by: Bartłomiej Klocek <barthap10@gmail.com>
Automated upstream sync of generated reference content.

| Generator | Status |
| --- | --- |
| App config schema | ➖ No changes |
| Expo Skills | ✅ Synced |
| EAS CLI reference | ➖ No changes |
| Android permissions | ➖ No changes |

## Files
- `docs/ui/components/ExpoSkillsTable/data/expo-skills.json`

Co-authored-by: Expo Bot <expo-bot@users.noreply.github.com>
# Why

The `NAVIGATION_DEPRECATED` action was deprecated and we can remove it.

# How

1. Remove the action
2. Remove `DeprecatedNavigationInChildContext` 
3. Remove all the usages

# Test Plan

CI

# Checklist

<!--
Please check the appropriate items below if they apply to your diff.
-->

- [x] I added a `changelog.md` entry and rebuilt the package sources
according to [this short
guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting)
- [ ] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
- [ ] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)

---------

Co-authored-by: Expo Bot <34669131+expo-bot@users.noreply.github.com>
# Why

Linking is always enabled in expo-router, so we can remove the checks
and logic for when it is not enabled

# How

<!--
How did you build this feature or fix this bug and why?
-->

# Test Plan

CI

# Checklist

<!--
Please check the appropriate items below if they apply to your diff.
-->

- [x] I added a `changelog.md` entry and rebuilt the package sources
according to [this short
guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting)
- [ ] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
- [ ] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)

---------

Co-authored-by: Expo Bot <34669131+expo-bot@users.noreply.github.com>
… `expo-router/react-navigation` (#48895)

# Why

Remove the deprecated `Link` and `useLinkProps` exports from
expo-router/react-navigation

# How

<!--
How did you build this feature or fix this bug and why?
-->

# Test Plan

CI

# Checklist

<!--
Please check the appropriate items below if they apply to your diff.
-->

- [ ] I added a `changelog.md` entry and rebuilt the package sources
according to [this short
guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting)
- [ ] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
- [ ] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)

---

<sub>Stack created with <a
href="https://github.com/github/gh-stack">GitHub Stacks CLI</a> • <a
href="https://gh.io/stacks-feedback">Give Feedback 💬</a></sub>
# Why

Fixes - #48982

Toggle currently sets state in `onAppear` which creates a small lag when
it shows up the Checkmark.

See before and after videos. The checkmark should appear on the first
view render.



## Before


https://github.com/user-attachments/assets/b912d6e8-3be0-4c15-95b1-ea70380a28cb


## After


https://github.com/user-attachments/assets/2c246e7b-975b-40dc-99e5-5b9585b25589



<!--
Please describe the motivation for this PR, and link to relevant GitHub
issues, forums posts, or feature requests.
-->

# How

Set checked state in binding instead of onAppear.
<!--
How did you build this feature or fix this bug and why?
-->

# Test Plan

Tested the user shared repro

<!--
Please describe how you tested this change and how a reviewer could
reproduce your test, especially if this PR does not include automated
tests! If possible, please also provide terminal output and/or
screenshots demonstrating your test/reproduction.
-->

# Checklist

<!--
Please check the appropriate items below if they apply to your diff.
-->

- [ ] I added a `changelog.md` entry and rebuilt the package sources
according to [this short
guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting)
- [ ] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
- [ ] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)

---------

Co-authored-by: Kudo Chien <kudo@expo.dev>
# Why

Fixes - #49075

#43797 added `isEditing` flag but it
never set to `false` after the manual drag is finished. So post manual
drag, JS value prop update was getting dropped.

<!--
Please describe the motivation for this PR, and link to relevant GitHub
issues, forums posts, or feature requests.
-->

# How

Use event count mechanism to keep the slider always accept new values
and ignore if JS sends any old values due to async event.

<!--
How did you build this feature or fix this bug and why?
-->

# Test Plan

Tested user shared repro

<!--
Please describe how you tested this change and how a reviewer could
reproduce your test, especially if this PR does not include automated
tests! If possible, please also provide terminal output and/or
screenshots demonstrating your test/reproduction.
-->

# Checklist

<!--
Please check the appropriate items below if they apply to your diff.
-->

- [ ] I added a `changelog.md` entry and rebuilt the package sources
according to [this short
guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting)
- [ ] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
- [ ] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
@pull pull Bot locked and limited conversation to collaborators Aug 20, 2026
@pull pull Bot added the ⤵️ pull label Aug 20, 2026
@pull
pull Bot merged commit b3beb15 into code:main Aug 20, 2026
20 of 21 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants